// components/AuthCheck.tsx
'use client';

import React, { useEffect } from 'react';
import { redirect } from 'next/navigation';

export function AuthCheck({ children }) {
    useEffect(() => {
        // 检查 cookie 中是否有 token
        const checkAuth = async () => {
            try {
                // 在 Next.js 中直接从服务器获取 cookies 是不可能的，
                // 所以我们假设这里的 token 已经被传递到客户端（例如通过 props 或者 context）。
                // 如果需要从 API 获取 token，可以在这里发起请求。
                let token = null;

                // 假设我们已经有了某种方式获取 token（例如通过 fetch API）
                // 这里只是一个示例，实际应用中应替换为真实逻辑
                // token = await getTokenFromServer();

                if (!token) {
                    // 尝试从 localStorage 获取 token
                    token = window.localStorage.getItem('token');
                }

                if (!token) {
                    redirect("/login");
                }
            } catch (error) {
                console.error("检查认证时出错:", error);
                redirect("/login");
            }
        };

        checkAuth();
    }, []);

    return <>{children}</>;
}